約 3,656,929 件
https://w.atwiki.jp/nyanking/pages/15.html
POCフレームワーク このページは作成中です、これからこれから~w POCは "Pieace Of Cake"(楽勝) の略で、自由に柔軟に利用できるPHPフレームワークの開発を 作りたいという思いから名づけました
https://w.atwiki.jp/nekotyo/pages/4.html
管理関係 トップ ・ 管理人 ・ コメント 攻略書き方 ・ 書き方練習 DJMAX トップ / 5key Lv ・ 7key Lv よくある質問 ☆曲別攻略 ■ 攻略1~5 ├ 風にお願い ├ End of the Moonlight ├ Enemy storm ├ Extreme Z4 └ Luv Flow ■ 攻略6~10 ├ Never Say ├ Out Law ├ Ray of Illuminati ├ Save My Dream └ Light House ■ 攻略11~15 ├ One The Love ├ Sunny Side ├ Long Vacation ├ Can We Talk └ JBG ■ 攻略16~20 ├ Eternal Memory ~少女の夢~ ├ MASAI ├ NB Ranger ├ SIN └ Funky Chups ■ 攻略21~25 ├ Fever GJ ├ Yo! max! ├ Every Morning ├ Astro Fight └ FTR ■ 攻略26~30 ├ ON ├ Too Fast ├ Jupiter Driving ├ Elastic Star └ Carmen Fantasy ■ 攻略31~35 ├ Ya! Party! ├ Catch Me ├ Red ├ Revenge └ Para Q ■ 攻略36~40 ├ Tempatation ├ Carmen Toreador ├ Mozart Symphony no40 1st movement ├ 1st-sync └ ピアノ協奏曲1番 ■ 攻略41~45 ├ Electro Sensibility ├ Futurism ├ Getup ├ Oblivion └ Rock or Die ■ 攻略46~50 ├ Detonator ├ Elastic Star (UK GarageMIX) ├ KUDA └ Let's Go Baby ■ 攻略51~60 ├ 真夏の夜の夢 ├ Triple Zoe ├ Can we talk(broken dog leg mix) ├ CnP └ Damascus ■ 攻略61~70 ├ Knowledge system ├ Minimal Life ├ Russian Dance ├ Space of Soul └ WeirdPistol ■ 攻略71~75 ├ Cherokee ├ Yellow berry ├ Bright Dream(Vocal) ├ Dancin' Planet └ Miles ■ 攻略76~80 ├ Hypersonic ├ AI ├ Lemonade ├ Memory of Beach └ Fear ■ 攻略81~85 ├ Tammuz ├ Dreadnought ├ 風にお願い(Japanese Version) ├ Chase 575 └ Living on The Beat ■ 攻略86~90 ├ Brave it out ├ JASCO!! ├ Chrono Breakers ├ V-BOB └ ふたり ■ 攻略91~95 ├ Urban night ├ Road of Death ├ Again Sunshine ├ The Tokyo(I.B.I.S) └ Starfish ■ 攻略96~100 ├ Vibaldi Summer 3rd Mov. ├ Fallen Angel ├ Seeker ├ パンプロック └ トルコ行進曲 ■ 攻略101~105 ├ Chain Of Gravity ├ For Seasons ├ Rolling on the duck ├ Far East Glass Field └ Relation Again ■ 攻略106~110 ├ Style ├ River Flow ├ Vanish Lady ├ One Sided Love └ Trnmpet Conoerto Ⅲ ■ 攻略111~115 ├ Cosmic Elevator ├ Midnight Blood ├ Rocka-a-doodle-doo(Funky Breaks) ├ Phantom Of Sky └ Aurora Borealis ■ 攻略116~120 ├ Super Lovely ├ For the ikarus ├ Get On Top ├ Stars in your eyes └ Phoenix Virus ■ 攻略121~125 ├ Hello Pinky ├ Grid System ├ Dream Of You ├ Mess it Up └ 桜華月 ■ 攻略126~130 ├ Regret of snow ├ Feel ├ School Someday ├ Csikos Post └ Angelic Tears ■ 攻略131~135 ├ Let Go ├ My Alias ├ Yo Creo Que Si ├ Real Over Drive └ Celestial Tears ■ 攻略136~140 ├ Fentanest └ Hey! there ☆コース別攻略(工事中) ■ 攻略1~5 ├ Let's begin ├ Step by Step ├ Feel So Good ├ Emotional Sound └ Colors ■ 攻略6~10 ├ Excite ├ Dreams come true ├ Yo! MAX! ├ Classic Land -1- └ Low pressure ■ 攻略11~15 ├ Challenge ├ Initial E ├ Go LEFT!! └ Run Fly ■ 攻略16~20 ├ DJMAX Best ├ Ray o Beach ├ Shooting Star ├ Sweet Revolt └ Nien ROD ■ 攻略21~25 ├ TARI ├ ECO ├ Danger Zone ├ Crush! └ Fine Day ■ 攻略26~30 ├ Gloomy Day ├ Wind Day ├ Rain Day ├ Shower DAY └ Cloud Day ■ 攻略31~35 ├ M2U ├ Storm Day ├ Red Story ├ Orange Message └ Yellow Funky ■ 攻略36~40 ├ Green Life ├ Blue MX ├ Indigo Style ├ Violet MAX └ Croove ■ 攻略41~45 ├ Enjoy! DJMAX! ├ COOL! KOOL! ├ Fire! ├ NG └ Mechanic Flame ■ 攻略46~50 ├ Classic Land -2- ├ Forte Escape ├ School Life ├ December Sound └ Misery ■ 攻略51~55 ├ Classic Land -2- ├ ROCKin' Fever ├ MaX Bomb ├ Soul Mate └ MANIcure ■ 攻略56~60 ├ Love Sensation ├ DA-da-DA ├ Jazz Soul ├ Electronic Boutique └ Starfall ■ 攻略61~65 ├ Remix Station ├ ESTi ├ RED eYe ├ Jazz Bar └ Makasa ■ 攻略66~70 ├ Broken Knuckles ├ J-Style ├ Summer in DJMAX ├ Slow Day └ ShininG Day ☆アイテム(工事中) ☆ディスク関係(工事中) ☆小ねた(工事中) ☆用語集 ■ あ行 ├ あ ├ い ├ う ├ え └ お ■ か行 ├ か ├ き ├ く ├ け └ こ ■ さ行 ├ さ ├ し ├ す ├ せ └ そ ■ た行 ├ た ├ ち ├ つ ├ て └ と ■ な行 ├ な ├ に ├ ぬ ├ ね └ の ■ は行 ├ は ├ ひ ├ ふ ├ へ └ ほ ■ ま行 ├ ま ├ み ├ む ├ め └ も ■ や行 ├ や ├ ゆ └ よ ■ ら行 ├ ら ├ り ├ る ├ れ └ ろ ■ わ行 ├ わ ├ を └ ん ■ が行 ├ が ├ ぎ ├ ぐ ├ げ └ ご ■ ざ行 ├ ざ ├ じ ├ ず ├ ぜ └ ぞ ■ だ行 ├ だ ├ ぢ ├ づ ├ で └ ど ■ ば行 ├ ば ├ び ├ ぶ ├ べ └ ぼ ■ ぱ行 ├ ぱ ├ ぴ ├ ぷ ├ ぺ └ ぽ リンク ■ 参考 ・管理人HP ・管理人blog ・ネットマーブル ■ 検索サイト ・google ・yahoo 更新履歴 取得中です。 カウンタ - 今日 - 昨日 - 編集用
https://w.atwiki.jp/battleoperation-next/pages/267.html
汎用? 機体概要 数値情報機体 メイン攻撃 サブ攻撃 特殊攻撃1 特殊攻撃2 格闘攻撃 タックル 機体スキル 備考『いいだろう。何度でも葬ってやる!』キャンペーン 機体情報 機体考察 必要パーツ 主兵装詳細 副兵装詳細 運用 機体攻略法 コンボ一覧 アップデート履歴 コメント欄 機体概要 公式の説明を書く 数値情報 機体 汎用 LV1 LV2 LV3 LV4 LV5 OS ノーマル 装甲Ⅰ 機動Ⅰ 装甲Ⅱ 機動Ⅱ Cost 500 550 600 機体HP 800 860 800 920 800 実弾補正 90 90 102 90 114 ビーム補正 90 90 102 90 114 格闘補正 95 95 110 95 125 耐実弾装甲 84 94 84 104 84 耐ビーム装甲 84 94 84 104 84 耐格闘装甲 90 102 90 114 90 スピード 85 ブースト 115 115 125 115 135 索敵 600 必要Lv ※1 必要開発費 24000P 30000P 48000P P P 必要ウォレット 173JPY 194JPY 259JPY JPY JPY ※1: 必要パーツが揃えばパイロットLv1から開発可能です。 キャンペーン期間が終了すると開発パーツは入手できなくなります。 メイン攻撃 武器名 威力 発射間隔 弾数 リロード速度 射程 備考 ビーム・ライフル 130 ?発/秒 6 約?秒 500 予測射撃可不可移動射撃可不可?発よろけビーム属性 サブ攻撃 武器名 威力 発射間隔 弾数 リロード速度 射程 備考 頭部バルカン 10 ?発/秒 or ?秒 40 約?秒 250 予測射撃可不可移動射撃可不可?発よろけ実弾属性 タクティカルアームズⅡ(ガトリングF) 22 ?発/秒 or ?秒 (40) 約?秒 400 予測射撃可不可移動射撃可不可?発よろけ混合属性 特殊攻撃1 武器名 威力 発射間隔 弾数 リロード速度 射程 備考 タクティカルアームズⅡ(ソードF)(N) 330 ?秒 2 約?秒 - 移動射撃不可?発ダウン実弾・格闘属性 タクティカルアームズⅡ(投擲)(下) 200 ?秒 (2) 約?秒 300 移動射撃不可?発ダウン実弾属性 タクティカルアームズⅡ(投擲)(左) 160 ?秒 (2) 約?秒 300 移動射撃不可?発ダウン実弾属性 タクティカルアームズⅡ(投擲)(右) 160 ?秒 (2) 約?秒 300 移動射撃不可?発ダウン実弾属性 特殊攻撃2 武器名 威力 発射間隔 弾数 リロード速度 射程 備考 回避行動(N) 80 ?秒 2 約?秒 - - 回避行動(下) 80 ?秒 (2) 約?秒 - - 回避行動(左) 80 ?秒 (2) 約?秒 - - 回避行動(右) 80 ?秒 (2) 約?秒 - - 格闘攻撃 武器名 威力 備考 アーマーシュナイダー(N) 280 実弾・格闘属性 格闘(前) 150 格闘属性 アーマーシュナイダー(下) 200 実弾・格闘属性 タクティカルアームズⅡ(ソードアーム)(左) 230 ビーム・格闘属性 タクティカルアームズⅡ(ソードアーム)(右) 230 ビーム・格闘属性 タックル 武器名 威力 備考 タックル 260 衝撃属性 機体スキル スキル名 発動条件 効果 タクティカルアームズⅡ(投擲) 特殊攻撃1(↓or←or→)実行時 タクティカルアームズⅡをターゲットに投擲する。投擲中はタクティカルアームズⅡを使用した攻撃が使用不可となる。 備考 『いいだろう。何度でも葬ってやる!』キャンペーン キャンペーン期間2017年04月13日(木)14 00 ~ 04月27日(木)13 59[予定] キャンペーン内容キャンペーン期間中、「ブルーフレームセカンドリバイ」が開発&強化できる特別なパーツをドロップする場合がございます。 ドロップするパーツと開発&強化可能機体≪設計図≫【設計図】ブルーフレームセカンドR … ブルーフレームセカンドリバイを開発可能 ※設計図はパイロットLv1よりドロップします。 ※必要パーツが揃えばパイロットLv1から開発可能です。 ※設計図は、本キャンペーン期間中のみドロップします。 ≪強化パーツ≫発泡金属装甲材 … ブルーフレームセカンドリバイの必要強化パーツ ※強化パーツはパイロットLv8よりドロップします。 ※開発にパイロットLvの制限はありませんが、強化には適正なパイロットLvと強化パーツが必要です。 ※強化パーツは、本キャンペーン期間中のみドロップします。 ≪強化プラン≫【Lv2強化プラン】ブルーフレームセカンドR … ブルーフレームセカンドリバイ[機体Lv2]への必要強化パーツ 【Lv3強化プラン】ブルーフレームセカンドR … ブルーフレームセカンドリバイ[機体Lv3]への必要強化パーツ 【Lv4強化プラン】ブルーフレームセカンドR … ブルーフレームセカンドリバイ[機体Lv4]への必要強化パーツ 【Lv5強化プラン】ブルーフレームセカンドR … ブルーフレームセカンドリバイ[機体Lv5]への必要強化パーツ ※強化プランはパイロットLv12よりドロップします。 ※強化プランは「現在所有している機体Lv」から「1つ上の機体Lv」のプランがドロップします。 ※強化プランは、本キャンペーン期間中のみドロップします。 機体情報 機体考察 1 2 必要パーツ パーツ名 必要数 備考 Lv1 【設計図】ブルーフレームセカンドR 10 キャンペーン期間中のみドロップ Lv2 3級戦闘型運用データ 20 - 【Lv2強化プラン】ブルーフレームセカンドR 4 キャンペーン期間中のみドロップ 発泡金属装甲材 4 キャンペーン期間中のみドロップ 量産型フレーム構造材 15 - Lv3 2級総合運用データ 12 - 【Lv3強化プラン】ブルーフレームセカンドR 6 キャンペーン期間中のみドロップ 発泡金属装甲材 6 キャンペーン期間中のみドロップ 高出力スラスター材 15 - Lv4 - - - - - - - - - - - - Lv5 - - - - - - - - - - - - 主兵装詳細 バンナム砲相手は死ぬ 副兵装詳細 トッポポッキーよりも中身で勝負している 運用 何か書く 機体攻略法 敵機として出会った際の対処法をかく. コンボ一覧 ※コンボ内にある表中の略号については、コンボ一覧表を参照。 アップデート履歴 2017/04/13:新規追加 コメント欄 過去ログ 1 名前 「Lv3必要パーツ」追記。(`_´)ゞハッ - marbee 2017-07-07 23 00 22 新規追加。(`_´)ゞハッ - marbee 2017-04-22 11 21 21 最新の20件を表示しています.全てのコメントを見る ▲トップに戻ります▲
https://w.atwiki.jp/seed-ms/pages/156.html
【用語名】 X100系フレーム 【採用MS】 GAT-X105 ストライクGAT-X102 デュエルGAT-X103 バスターGAT-X131 カラミティMBF-02 ストライクルージュORB-01 アカツキ 【詳細】 地球連邦軍が開発し、GAT-Xシリーズと呼ばれるモビルスーツ郡に採用されたインナーフレーム。 このフレームは他のタイプに比べ可動範囲が広く、複雑な構造となっており、デュエル、ストライクはその可動性を活かした機動性の高い汎用型のMSとして開発されている。 特にストライクに用いられたフレームは人体機能を完全に再現するという目的の元、デュエルからイージスの開発データを参考に手が加えられており、特に腕部の構造は後にも先にもストライクにしか採用されていないものとなっており、 ストライカーパック換装による追加装備を難なく使用することが可能。 後期GATシリーズに含まれるカラミティ(陣営は異なるがストライクルージュやアカツキ)にも採用されている。
https://w.atwiki.jp/souhei_world/pages/790.html
ムーバブル・フレーム [解説] 骨格となるフレームに、魔力収縮筋や転換炉、魔導炉、操縦槽を組み付け、更にその他補器や装備品も搭載して機体を構成する。 その基本的構造は、4.5世代装兵から第五世代装兵にかけて流行したモノコック・ボディ構造を採用した装兵群を除いて、大筋で変わりは無い。
https://w.atwiki.jp/parepan/pages/75.html
下記サンプルは親フレームの入力内容を子フレームへ移動し、サブミットする ものです。 親フレームソースのスクリプト部分 function nextFm(){ top.frames[0].document.in_area.in_bumon_name.value = document.in_area.ward.value top.frames[0].document.in_area.submit(); } /script body form name="in_area" input class="type11" type="text" name="ward" value="" input class="button010" type="button" onclick="nextFm()" value="検索" iframe src="FLM_bumon_kensaku.php" name="next_fm" width="280" height="180" scrolling="auto" marginwidth="0" marginheight="0" frameborder="0" /iframe /body 子フレームソース html head /head body form name="in_area" action="FLM_bumon_kensaku.php" method="post" input type="hidden" name="in_bumon_name" value="" br input type="hidden" name="fm_no" value="" br input type="hidden" name="el_no" value="" br /form /body /html
https://w.atwiki.jp/opengl/pages/142.html
長らく道を逸れましたが、ここで再びキーフレームに戻ります。 .Xのアニメーションキーのキータイプ情報 0…回転 w,x,y,zの順にクォータニオンデータ 1…拡大縮小 x,y,zの順に拡大縮小データ 2…平行移動 x,y,zの順に平行移動データ 4…合成行列 回転、拡大縮小、平行移動行列が掛け合わされた4×4行列データ まず、最初に知っておかなくてはならない事があります。 それは、当サイトで使用している Cyberdelia は、合成行列タイプの アニメーションデータは階層構造が正しく生成できないという事です。 詳しくは Cyberdelia に付属のヘルプを参照して下さい。 とは言っても、合成行列でないタイプの方は正しく出力されますので、 それを元に合成行列を作成し、単純なキーフレームアニメーションを表示して みたいと思います。 とりあえず、平行移動行列だけに対応したプログラムを作成しました。 今回もわかりやすくするために新しくsample2.xというファイルを作成し それを表示しています。 font.h class GLFONT { public HFONT Hfont; HDC Hdc; GLFONT(wchar_t *fontname, int size); void DrawStringW(int x,int y,wchar_t *format, ...); }; //コンストラクタ フォント作成 GLFONT GLFONT(wchar_t *fontname, int size) { Hfont = CreateFontW( size, //フォント高さ 0, //文字幅 0, //テキストの角度 0, //ベースラインとx軸との角度 FW_REGULAR, //フォントの太さ FALSE, //イタリック体 FALSE, //アンダーライン FALSE, //打ち消し線 SHIFTJIS_CHARSET, //文字セット OUT_DEFAULT_PRECIS, //出力精度 CLIP_DEFAULT_PRECIS, //クリッピング精度 ANTIALIASED_QUALITY, //出力品質 FIXED_PITCH | FF_MODERN, //ピッチとファミリー fontname); //書体名 Hdc = wglGetCurrentDC(); SelectObject(Hdc, Hfont); } //ワイド文字列の描画 void GLFONT DrawStringW(int x,int y,wchar_t *format, ...) { wchar_t buf[256]; va_list ap; int Length=0; int list=0; //ポインタがNULLの場合は終了 if ( format == NULL ) return; //文字列変換 va_start(ap, format); vswprintf_s(buf, format, ap); va_end(ap); Length = wcslen(buf); list = glGenLists(Length); for( int i=0; i wglUseFontBitmapsW(Hdc, buf[i], 1, list + (DWORD)i); } glDisable(GL_LIGHTING); glRasterPos2i(x, y); //ディスプレイリストで描画 for( int i=0; i { glCallList(list + i); } glEnable(GL_LIGHTING); //ディスプレイリスト破棄 glDeleteLists(list, Length); list = 0; Length = 0; } PNG.h #pragma once #include lodepng.h //テクスチャクラス class TEXTURE{ protected LodePNG_Decoder decoder;//デコーダ unsigned char* buffer;//バッファ size_t buffersize, imagesize;//サイズ public TEXTURE(); TEXTURE(const char* FileName);//コンストラクタ void LOAD_PNG(const char* FileName);//PNG読み込み unsigned char* image;//イメージポインタ unsigned int Width,Height;//画像サイズ }; TEXTURE TEXTURE(){ } TEXTURE TEXTURE(const char* FileName){ LOAD_PNG(FileName); } void TEXTURE LOAD_PNG(const char* FileName){ LodePNG_Decoder_init( decoder); //ロード LodePNG_loadFile( buffer, buffersize, FileName); //デコード LodePNG_decode( decoder, image, imagesize, buffer, buffersize); //幅,高さ Width = decoder.infoPng.width;Height = decoder.infoPng.height; } xfile.h #pragma once #include PNG.h using namespace std; //3つのベクトル struct Vector3f{ float x; float y; float z; }vec3d; Vector3f operator*(Vector3f v,float size){ v.x *= size; v.y *= size; v.z *= size; return v; } //4つのベクトル struct Vector4f{ float x; float y; float z; float w; }vec4d; //4つのカラー struct Color4{ float r; float g; float b; float a; }; //4つの反射 struct Reflection4{ Color4 diffuse; Color4 ambient; Color4 emission; Color4 specular; }; //UV座標 struct UV{ float u;//u値 float v;//v値 }vec2d; //ポリゴンデータ struct Triangle{ Vector3f TriVer; Vector3f TriNor; UV TriUV; }Tri; //ポリゴンデータ struct Quadrangle{ Vector3f QuadVer; Vector3f QuadNor; UV QuadUV; }Quad; //マテリアル構造体 struct MATERIAL{ string MaterialName;//マテリアル名 Reflection4 MaterialColor;//反射 float Shininess;//shininess string TextureName;//テクスチャ名 int TexNo;//テクスチャNO. vector Tridata;//三角面データ vector Quaddata;//四角面データ }mtl; //メッシュ構造体 struct MESH{ public vector Material;//マテリアル vector TexData;//テクスチャデータ vector TexID;//テクスチャID GLuint TexID2;//代入用 TEXTURE* tex;//代入用 }msh; //アニメーションデータ構造体 struct ANIMATION{ public vector Key;//アニメーションキー vector Matrix;//行列データ }anm; //ノード構造体 struct NODE{ NODE* Node;//子ノード NODE* Next;//隣の階層 string FrameName;//フレーム名 MESH* Mesh;//メッシュ ANIMATION Anim;//アニメーションデータ }nde; //階層メッシュクラス class HIERARCHY{ public bool Load_Hierarchy(char* FileName); //階層メッシュ読み込み bool Load_Frame(FILE fp,NODE node,int hierarchy); //フレーム読み込み bool Load_Mesh(FILE fp,NODE node);//メッシュ読み込み bool Load_Animation(FILE fp);//アニメーション読み込み void Find_Frame(NODE node,char* name);//フレームを探す void Draw();//描画 void Draw_Frame(NODE node,int Frame_Time); void Animation_Draw(int Animation_NO,int Frame); void Init(); HIERARCHY(); HIERARCHY(char* FileName,int size); NODE Root;//ルートノード int Size;//サイズ int Back;//階層戻し char buffer[255]; NODE* pNode;//ノードポインタ int Animation_MaxFrame; }; HIERARCHY HIERARCHY(){ Init(); } HIERARCHY HIERARCHY(char* FileName,int size){ Init(); Size=size; Load_Hierarchy(FileName); } void HIERARCHY Init(){ Root.Node=NULL; Root.Next=NULL; Root.FrameName= Root ; Root.Mesh=NULL; } void HIERARCHY Draw_Frame(NODE node,int Frame_Time){ while(1){ if(node.Mesh!=NULL){ glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); for(int i=0;i (signed)node.Mesh- Material.size();i++){ glPushMatrix(); glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT,(const GLfloat *) node.Mesh- Material[i].MaterialColor.ambient); glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,(const GLfloat *) node.Mesh- Material[i].MaterialColor.diffuse); glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,(const GLfloat *) node.Mesh- Material[i].MaterialColor.specular); glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,node.Mesh- Material[i].Shininess); if(node.Mesh- Material[i].TexNo 0){ glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, node.Mesh- TexID[node.Mesh- Material[i].TexNo-1]); }else{ glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); } //とりあえずパラパラアニメ for(int k=1;k (signed)node.Anim.Key.size()-1;k++){ if((node.Anim.Key[k-1] =Frame_Time) (node.Anim.Key[k] Frame_Time)){ glMultMatrixf( node.Anim.Matrix[k-1][0]); } } if(node.Mesh- Material[i].Tridata.size() 1){ glVertexPointer(3, GL_FLOAT,sizeof(Tri) , node.Mesh- Material[i].Tridata[0].TriVer.x); glNormalPointer(GL_FLOAT,sizeof(Tri), node.Mesh- Material[i].Tridata[0].TriNor.x); //if(node.Mesh- Material[i].TexNo 0)glTexCoordPointer(2, GL_FLOAT, sizeof(Tri), node.Mesh- Material[i].Tridata[0].TriUV.u); glDrawArrays(GL_TRIANGLES,0,node.Mesh- Material[i].Tridata.size()); } if(node.Mesh- Material[i].Quaddata.size() 1){ glVertexPointer(3, GL_FLOAT,sizeof(Quad) , node.Mesh- Material[i].Quaddata[0].QuadVer.x); glNormalPointer(GL_FLOAT,sizeof(Quad), node.Mesh- Material[i].Quaddata[0].QuadNor.x); //if(node.Mesh- Material[i].TexNo 0)glTexCoordPointer(2, GL_FLOAT, sizeof(Quad), node.Mesh- Material[i].Quaddata[0].QuadUV.u); glDrawArrays(GL_QUADS,0,node.Mesh- Material[i].Quaddata.size()); } glPopMatrix(); } glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); //glDisableClientState(GL_TEXTURE_COORD_ARRAY); //glDisable(GL_TEXTURE_2D); } if(node.Node!=NULL)Draw_Frame(*node.Node,Frame_Time); if(node.Next!=NULL)Draw_Frame(*node.Next,Frame_Time); if(node.Node==NULL)return; if(node.Next==NULL)return; return; } } void HIERARCHY Animation_Draw(int Animation_NO,int Frame){ Draw_Frame(Root,Frame); } void HIERARCHY Draw(){ Draw_Frame(Root,0); } //フレームを探す void HIERARCHY Find_Frame(NODE node,char* name){ while(1){ if(strcmp(node.FrameName.c_str(),name)==0){ pNode= node; return; } if(node.Node!=NULL)Find_Frame(*node.Node,name); if(node.Next!=NULL)Find_Frame(*node.Next,name); if(node.Node==NULL)return; if(node.Next==NULL)return; return; } return; } //アニメーション読み込み bool HIERARCHY Load_Animation(FILE fp){ char buf[255]; char name[255]; vector Quaternion; vector Transform; vector Scaling; vector Key1; vector Key2; vector Key3; int hierarchy=0,count=0,keyID,key=0,dummy=0,x=0,y=0,z=0,w=0; //平行移動用 GLfloat move[]={ 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1 }; //読み込み while(!feof( fp)) { ZeroMemory(buf,sizeof(buf)); fscanf_s( fp, %s ,buf,sizeof(buf)); //AnimationSetを探す if(strcmp(buf, AnimationSet )==0){ while(!feof( fp)) { fgets(buf,sizeof(buf), fp); if(strstr(buf, AnimationKey )==NULL){ if((!strstr(buf, { )==NULL) (!strstr(buf, } )==NULL)){//名前の抽出 sscanf_s(buf, { %s } , name,sizeof(name)); pNode=NULL; Find_Frame(Root,name); pNode- Anim.Matrix.resize(Key3.size()); for(int i=0;i (signed)Key3.size();i++){ move[12]=Transform[i].x*Size; move[13]=Transform[i].y*Size; move[14]=Transform[i].z*Size; pNode- Anim.Key.push_back(Key3[i]); pNode- Anim.Matrix[i].resize(16); for(int j=0;j 16;j++)pNode- Anim.Matrix[i][j]=move[j]; } Animation_MaxFrame=Key3[Key3.size()-1]; Quaternion.clear(); Scaling.clear(); Transform.clear(); Key1.clear(); Key2.clear(); Key3.clear(); } }else{ fgets(buf,sizeof(buf), fp);//キー 0 回転 , 1 拡大縮小 , 2 平行移動 keyID=atoi(buf); fgets(buf,sizeof(buf), fp);//キーデータの個数 count=atoi(buf); switch (keyID){ case 0 for(int i=0;i fscanf_s( fp, %d;%d;%f,%f,%f,%f;;, , key, dummy, vec4d.w, vec4d.x, vec4d.y, vec4d.z); Key1.push_back(key); Quaternion.push_back(vec4d); } break; case 1 for(int i=0;i fscanf_s( fp, %d;%d;%f,%f,%f;;, , key, dummy, vec3d.x, vec3d.y, vec3d.z); Key2.push_back(key); Scaling.push_back(vec3d); } break; case 2 for(int i=0;i fscanf_s( fp, %d;%d;%f,%f,%f;;, , key, dummy, vec3d.x, vec3d.y, vec3d.z); Key3.push_back(key); Transform.push_back(vec3d); } break; default break; } } } } } Animation_MaxFrame=pNode- Anim.Key[pNode- Anim.Key.size()-1]; Quaternion.clear(); Scaling.clear(); Transform.clear(); Key1.clear(); Key2.clear(); Key3.clear(); return true; } //メッシュ読み込み bool HIERARCHY Load_Mesh(FILE fp,NODE node){ vector Vertex;//頂点 vector Normal;//法線 vector uv;//UV vector VertexIndex; vector NormalIndex; vector MaterialIndex; vector FaceIndex; char key[255]; char buf[255]; int v1=0,v2=0,v3=0,v4=0; int Count=0; string str= ; //読み込み while(!feof( fp)) { //キーワード 読み込み ZeroMemory(key,sizeof(key)); fscanf_s( fp, %s ,key,sizeof(key)); //頂点 読み込み if(strcmp(key, Mesh )==0) { fgets(buf,sizeof(buf), fp);//データは2行下にあると推定 改行する fgets(buf,sizeof(buf), fp); Count=atoi(buf); for(int i=0;i { fscanf_s( fp, %f;%f;%f;, , vec3d.x, vec3d.y, vec3d.z); Vertex.push_back(vec3d*(float)Size); } //頂点インデックス読み込み fgets(buf,sizeof(buf), fp);//データは2行下にあると推定 改行する fgets(buf,sizeof(buf), fp); while(strchr(buf, ; )==NULL){fgets(buf,sizeof(buf), fp);}//空行対策 Count=atoi(buf); for(int i=0;i { int dammy=0; fgets(buf,sizeof(buf), fp); str=buf; string size_type first = str.find_first_not_of( ); string size_type index = str.find( 3; ); if(index-first==0){ sscanf_s(buf, %d;%d,%d,%d;, , dammy, v1, v2, v3); VertexIndex.push_back(v1); VertexIndex.push_back(v2); VertexIndex.push_back(v3); } if((index==-1)||(index-first 1)){ sscanf_s(buf, %d;%d,%d,%d,%d;, , dammy, v1, v2, v3, v4); VertexIndex.push_back(v1); VertexIndex.push_back(v2); VertexIndex.push_back(v3); VertexIndex.push_back(v4); } FaceIndex.push_back(dammy); } } //法線 読み込み if(strcmp(key, MeshNormals )==0) { fgets(buf,sizeof(buf), fp);//データは2行下にあると推定 改行する fgets(buf,sizeof(buf), fp); Count=atoi(buf); for(int i=0;i { fscanf_s( fp, %f;%f;%f;, , vec3d.x, vec3d.y, vec3d.z); Normal.push_back(vec3d); } //法線インデックス読み込み fgets(buf,sizeof(buf), fp);//データは2行下にあると推定 改行する fgets(buf,sizeof(buf), fp); while(strchr(buf, ; )==NULL){fgets(buf,sizeof(buf), fp);}//空行対策 Count=atoi(buf); for(int i=0;i { int dammy=0; fgets(buf,sizeof(buf), fp); str=buf; string size_type first = str.find_first_not_of( ); string size_type index = str.find( 3; ); if(index-first==0){ sscanf_s(buf, %d;%d,%d,%d;, , dammy, v1, v2, v3); NormalIndex.push_back(v1); NormalIndex.push_back(v2); NormalIndex.push_back(v3); } if((index==-1)||(index-first 1)){ sscanf_s(buf, %d;%d,%d,%d,%d;, , dammy, v1, v2, v3, v4); NormalIndex.push_back(v1); NormalIndex.push_back(v2); NormalIndex.push_back(v3); NormalIndex.push_back(v4); } } } //マテリアルリスト if(strcmp(key, MeshMaterialList )==0) { fgets(buf,sizeof(buf), fp);//空改行 fgets(buf,sizeof(buf), fp);//マテリアル数 fgets(buf,sizeof(buf), fp);//リスト要素数 Count=atoi(buf); for(int i=0;i { fgets(buf,sizeof(buf), fp); int test=atoi(buf); MaterialIndex.push_back(test); } } //マテリアル読み込み if(strcmp(key, Material )==0) { fgets(buf,sizeof(buf), fp);//直後の行にあると推定 改行する //ディフューズ fscanf_s( fp, %f;%f;%f;%f;; , vec4d.x, vec4d.y, vec4d.z, vec4d.w); mtl.MaterialColor.diffuse=(const Color4 )vec4d; //SHININESS fscanf_s( fp, %f; , mtl.Shininess); //スペキュラー fscanf_s( fp, %f;%f;%f;; , vec4d.x, vec4d.y, vec4d.z); mtl.MaterialColor.specular=(const Color4 )vec4d; //エミッシブ fscanf_s( fp, %f;%f;%f;; , vec4d.x, vec4d.y, vec4d.z); mtl.MaterialColor.ambient=(const Color4 )vec4d; node.Mesh =new MESH(msh); node.Mesh- Material.push_back(mtl); Count=0; //マテリアル毎のデータを作成 for(int i=0;i (signed)MaterialIndex.size();i++){ if(FaceIndex[i]==3){ for(int j=0;j 3;j++){ Tri.TriVer=Vertex[VertexIndex[Count+j]]; Tri.TriNor=Normal[NormalIndex[Count+j]]; //Tri.TriUV=uv[VertexIndex[Count+j]]; node.Mesh- Material[MaterialIndex[i]].Tridata.push_back(Tri); } Count+=3; }else{ for(int j=0;j 4;j++){ Quad.QuadVer=Vertex[VertexIndex[Count+j]]; Quad.QuadNor=Normal[NormalIndex[Count+j]]; //Quad.QuadUV=uv[VertexIndex[Count+j]]; node.Mesh- Material[MaterialIndex[i]].Quaddata.push_back(Quad); } Count+=4; } } Vertex.clear(); Normal.clear(); uv.clear(); VertexIndex.clear(); NormalIndex.clear(); MaterialIndex.clear(); FaceIndex.clear(); return true; } } return false; } //フレーム読み込み bool HIERARCHY Load_Frame(FILE fp,NODE node,int hierarchy){ char key[255]; int begin=0,end=0; int current=hierarchy;//現在の階層 int file_pos; while(!feof( fp)) { //キーワード 読み込み ZeroMemory(key,sizeof(key)); fscanf_s( fp, %s ,key,sizeof(key)); //ヘッダー読み飛ばし if(strcmp(key, Header )==0){ while(strcmp(key, } )){ fscanf_s( fp, %s ,key,sizeof(key)); } continue; } //テンプレート読み飛ばし if(strcmp(key, template )==0){ while(strcmp(key, } )){ fscanf_s( fp, %s ,key,sizeof(key)); } continue; } //階層+ if(strcmp(key, { )==0){ begin++; } //階層- if(strcmp(key, } )==0){ end++; } //フレーム if(strcmp(key, Frame )==0){ fscanf_s( fp, %s ,key,sizeof(key)); if(((begin==0) (end==0))||(end-begin==-1)){//子ノード追加 node.Node=new NODE(nde); node.Node- FrameName=key; file_pos=ftell( fp); Load_Mesh(fp,*node.Node); fseek( fp, file_pos, SEEK_SET ); hierarchy++; Load_Frame(fp,*node.Node,hierarchy);//再帰呼び出し } if(Back==current){//階層戻り先にきた場合、同一階層追加 Back=-1; node.Next=new NODE(nde); node.Next- FrameName=buffer; file_pos=ftell( fp); Load_Mesh(fp,*node.Next); fseek( fp, file_pos, SEEK_SET ); Load_Frame(fp,*node.Next,current);//再帰呼び出し } if(end-begin 0){// } が { より多い時は階層を戻る strcpy_s(buffer,255,key); Back=current-(end-begin); return true; } if((end-begin==0) ((begin!=0) (end!=0))){//同一階層追加 node.Next=new NODE(nde); node.Next- FrameName=key; file_pos=ftell( fp); Load_Mesh(fp,*node.Next); fseek( fp, file_pos, SEEK_SET ); Load_Frame(fp,*node.Next,current);//再帰呼び出し } //階層を戻る if((Back!=-1) (Back } } return true; } //階層メッシュ読み込み bool HIERARCHY Load_Hierarchy(char* FileName){ //Xファイルを開いて内容を読み込む Back=-1; int Hierarchy=0; FILE* fp=NULL; fopen_s( fp,FileName, rt ); //読み込み fseek(fp,0,SEEK_SET); Load_Frame(*fp,Root,Hierarchy); fseek(fp,0,SEEK_SET); Load_Animation(*fp); fclose(fp); return true; } main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include GL/freeglut/freeglut.h #include xfile.h #include font.h #define WIDTH 320 #define HEIGHT 240 float angle=0.0f; HIERARCHY* hierarchy; GLFONT *font; wstring wstr; wchar_t wchar[255]; int CurrentFrame; void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0,0,WIDTH,HEIGHT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, WIDTH/HEIGHT, 0.1, 2000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 1000.0, 1000.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); //階層アニメーション hierarchy- Animation_Draw(0,CurrentFrame); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glOrtho(0, WIDTH, HEIGHT, 0, -1, 1); glColor4f(1.0f, 1.0f, 1.0f, 1.0f); wstr=L 最大フレーム[ ; _itow_s(hierarchy- Animation_MaxFrame,wchar,255,10); wstr+=wchar; wstr+=L ] ; font- DrawStringW(0,16,(wchar_t *)wstr.c_str()); wstr=L 現在のフレーム[ ; _itow_s(CurrentFrame,wchar,255,10); wstr+=wchar; wstr+=L ] ; font- DrawStringW(0,32,(wchar_t *)wstr.c_str()); glutSwapBuffers(); } void idle(void) { if(hierarchy- Animation_MaxFrame CurrentFrame)CurrentFrame=0; Sleep(1); glutPostRedisplay(); } //タイマー void timer(int value) { CurrentFrame+=150; glutTimerFunc(100 , timer , 0); } void Init(){ glClearColor(0.0, 0.0, 0.0, 1.0); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHT0); glEnable(GL_LIGHTING); glEnable(GL_CULL_FACE); glCullFace(GL_BACK); hierarchy = new HIERARCHY( sample2.x ,100); font = new GLFONT(L MS明朝 , 16); } int main(int argc, char *argv[]) { glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( キーフレーム ); glutDisplayFunc(display); glutIdleFunc(idle); glutTimerFunc(100 , timer , 0); Init(); glutMainLoop(); return 0; }
https://w.atwiki.jp/suzu_notes/pages/13.html
リスト表示 ■メインビュー(CxxxView)の場合 BOOL CxxxView PreCreateWindow(CREATESTRUCT cs) { // TODO この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを // 修正してください。 cs.style |= LVS_REPORT;// スタイルの指定 return CListView PreCreateWindow(cs); } void CxxxView OnInitialUpdate() { CxxxView OnInitialUpdate(); // TODO GetListCtrl() メンバ関数の呼び出しをとおして直接そのリスト コントロールに // アクセスすることによって ListView をアイテムで固定できます。 CListCtrl myLV = GetListCtrl(); myLV.InsertColumn(0, _T("テスト"), LVCFMT_LEFT, 100, -1);// 表示テスト用カラム myLV.InsertColumn(1, _T("テスト2"), LVCFMT_LEFT, 300, -1);// 表示テスト用カラム } ■ドッキングウィンドウ上に表示 CDockablePaneの派生クラス(CxxxWnd)のOnCreate関数 int CxxxWnd OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDockablePane OnCreate(lpCreateStruct) == -1) return -1; // TODO ここに特定な作成コードを追加してください。 CRect rectDummy; rectDummy.SetRectEmpty(); const DWORD dwViewStyle = LVS_REPORT | WS_CHILD | WS_VISIBLE | WS_VSCROLL;// リストのスタイル指定 if ( !m_ListCtrl.Create(dwViewStyle, rectDummy, this, 1) ) return -1;// リストコントロールの生成 m_ListCtrl.InsertColumn( 1, _T("テスト"), LVCFMT_LEFT, 100);// カラムを追加 return 0; } これだけだと、ウィンドウは白いままなので再描画を行う必要がある。 CDockablePaneの派生クラス(CxxxWnd)のOnSize関数 void CxxxViewWnd OnSize(UINT nType, int cx, int cy) { CDockablePane OnSize(nType, cx, cy); // TODO ここにメッセージ ハンドラ コードを追加します。 AdjustLayout();// リストコントロール部分の再描画 } CDockablePaneの派生クラス(CxxxWnd)にリストコントロールを再描画する関数(AdjustLayout)を追加 void CxxxViewWnd AdjustLayout() { if(GetSafeHwnd() == NULL) return; CRect rectClient; GetClientRect(rectClient); m_ListCtrl.SetWindowPos(NULL, rectClient.left, rectClient.top, rectClient.Width(), rectClient.Height(), SWP_NOACTIVATE | SWP_NOZORDER); }
https://w.atwiki.jp/wizardsandgears/pages/197.html
◆ガーディアンフレーム 通称「GF」。魔力によって制御する、大型の兵器。 オーブシステムが実用化される以前から構想が発案されていたが、 その非効率さから、実用化には至っていなかった。 しかし、天才科学者フィリーネ・ヘルムホルツが書いた設計図が発見され、 UWCの技術提供のもと、実用化に成功した。
https://w.atwiki.jp/jinsichi/pages/64.html
Aviutlの場合、人間の見た目的には時間で操作出来ているように見えて、実はメインはフレーム単位です。 ●文字送りの早さについて 30FPSの動画で あいうえおかきくけこさしすせそたちつてと の20文字を「文字送り12」で表示するのにかかるフレームの長さは? 30FPS=1秒の間に存在するフレーム数なので 1秒=30フレーム。 文字送り12=1秒に表示出来る文字数なので 30フレームで12文字表示する計算になる。 1文字表示するのに2.5フレームってことね。 上記の例だと20文字なので 2.5フレーム×20文字=50フレーム 時間に直すと? 1秒=30フレームなので 1フレーム0.03333秒 50フレーム×0.0333=1.6秒 だいたいこんな計算。 ツールの中で使っているウェイトとか、セリフ間隔の計算もコレです。 指定した秒数×FPS値=ウェイトや間隔を取るフレーム数 これを 文字表示に必要なフレーム数 に加算しとるわけです。 ちなみに誤差がある。当たり前ですけど。 もっとメンドイので別に回しました。